Próbuję załadować prognozę po odbiorze, ale pojawia się ten błąd /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests to wewnętrzny moduł NumPy i nie należy ich importować. Zostanie usunięty w przyszłym NumPy wydanie. z numpy.core.umath_tests import inner1d /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/base.py:311: UserWarning: Próba odblokowania estymatora DecisionTreeClassifier z wersja 0.20.2 podczas korzystania z wersji 0.19.2. Może to doprowadzić do pęknięcia kod lub nieprawidłowe wyniki. Używaj na własne ryzyko. UserWarning) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/base.py:311: UserWarning: Próba odblokowania estymatora RandomForestClassifier z wersja 0.20.2 podczas korzystania z wersji 0.19.2. Może to doprowadzić do pęknięcia kod lub nieprawidłowe wyniki. Używaj na własne ryzyko. UserWarning) Traceback (ostatnie połączenie ostatnio): Plik "rf_pred_model_tester.py", wiersz 7, w print ('Class:', int (rf.predict (xx))) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/forest.py" , linia 538, w przewidywaniu proba = self.predict_proba (X) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/forest.py", wiersz 581, w Predict_proba n_jobs, _, _ = _partition_estimators (self.n_estimators, self.n_jobs) Plik "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/ensemble/base.py", linia 153, w _partition_estimators n_jobs = min (_get_n_jobs (n_jobs), n_estimators) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/sklearn/utils/init.py", wiersz 464 w _get_n_jobs if n_jobs <0: TypeError: „<” nie jest obsługiwane między wystąpieniami „NoneType” i „int” oto kod, który próbuję uruchomić import marynaty importuj numpy jako np z open ('rf_model_1', 'rb') jako f: rf = pickle.load (f) xx = np.array ([67, 17832, 1, 1, 0, 33, 1941902452, 36, 33011.0, 19, 18, 0, 2, 1]). reshape (1, -1) print ('Klasa:', int (rf.predict (xx))) Spodziewam się takiego wyniku: Klasa: [0] jeśli uruchomię kod na jupyter, działa dobrze, ale pojawia się błąd, gdy próbuję uruchomić na terminalu.
2021-01-16 08:13:59
Twój błąd, mówiąc wprost: UserWarning: Próba usunięcia estymatora RandomForestClassifier z wersji 0.20.2 podczas korzystania z wersji 0.19.2. Może to prowadzić do złamania kodu lub nieprawidłowych wyników. Używaj na własne ryzyko. I rzeczywiście tak się stało; podczas wytrawiania atrybut n_jobs Twojego RandomForestClassifier był utrzymywany na poziomie Brak. Jest to domyślna wartość inicjalizacji, ale za kulisami jest ona zwykle ustawiona na 1. Więcej informacji na temat n_jobs można znaleźć tutaj: https://scikit-learn.org/stable/glossary.html#term-n-jobs Dla ciebie ustawienie n_jobs rf na 1 załatwi sprawę: import marynaty importuj numpy jako np z open ('rf_model_1', 'rb') jako f: rf = pickle.load (f) rf.n_jobs = 1 xx = np.array ([67, 17832, 1, 1, 0, 33, 1941902452, 36, 33011.0, 19, 18, 0, 2, 1]). reshape (1, -1) print ('Klasa:', int (rf.predict (xx))) | Bardzo aktywne pytanie. Zdobądź 10 punktów reputacji, aby odpowiedzieć na to pytanie. Wymóg dotyczący reputacji pomaga chronić to pytanie przed spamem i brakiem odpowiedzi. Nie szukasz odpowiedzi? Przeglądaj inne pytania otagowane jako python-3.x lub zadaj własne pytanie.